// 对象：通过defineProperty对对象的已有属性值的读取和修改进行劫持（监视、拦截）
//  数组：通过重写数组一系列的方法来实现元素修改的劫持

// 问题：
//  对象直接添加的属性或者删除已有属性，界面不会自动更新
//  直接通过下标替换元素或者更新length，界面不会自动更新